In a broadcast network, a broadcast base station (“base station”) or set of base stations transmit the same data to a large number of network participants. Such systems are often configured for unidirectional communications, meaning that the base station transmits the data to the participates, but typically does not receive any responsive communication. Indeed, one advantage of broadcast networks is that the hardware and software required to operate the system may be simplified as compared with bi-directional communication systems because a typical unidirectional base station only requires transmit path hardware. A further advantage of broadcast networks over bi-directional communication networks is that network resources, such as communication bandwidth, may be conserved because the entire band may be used for communication in a single direction without the need to reserve bandwidth for responsive communications. An additional benefit is that network performance and download speeds may be improved over bi-directional communication networks because there is typically no need to wait for acknowledgements and responsive communications between the parties.
Despite these advantages, there have traditionally been some disadvantages of broadcast networks. One such disadvantage is that a network participant which is outside of a particular geographical area often do not receive complete data sets, or may receive errors in the received data. Other circumstances may affect reception, including motion, multipath fading, physical signal obstructions and the like. If the network traffic is simply blasted out to the network participants without any regard for whether the participants are receiving complete data, network performance may be poor.
One solution to the problem of lost or erroneous data in broadcast networks is to provide feedback between the network participants and the base station. For example, the participants can be configured to provide an acknowledgement signal to the base station, and the base station may be configured to receive the acknowledgment signal. As described above, this solution is not preferable in some situations (e.g., where a large amount of data is being transmitted to a number of network participants), because added hardware and network delays are required. For example, an entire broadcast network may be stalled while the base station waits for a single network participant to provide an acknowledgement within a specified time-out period. An additional problem is that in networks where there are a large number of users, there may correspondingly be a larger number of acknowledgment signals communicated, which may waste valuable network bandwidth, yet large enough to provide sufficient redundancy for the worst case receiver.
Another approach to the problem of lost or erroneous data in broadcast networks is to simply do nothing. In other words, the base station simply broadcasts the packets without feedback or any other form of quality of signal assurance, and just live with a reduced broadcast range, temporary loss of reception, or reduction of reception quality. One problem with this approach is that a network participant may include a mobile communication device. Thus, the network participant may move in and out of the broadcast range. It can become frustrating to a user when attempting to download a large file, such as a media file, if the download is continually interrupted midway through the download because the network participant moves out of the broadcast range, receive interference, or move to a position where one or more physical obstructions may limit reception quality. Thus, this approach is not optimal.
Still another approach to resolving the broadcast data loss problem is Fountain Coding. This approach involves encoding packets at the base station such that the data is redundant, whereby missing packets can be recovered. In fountain coding, a source file containing N packets of data is encoded into Z packets and transmitted without any feedback from the receiver. In such systems, the difference between the total number of transmitted packets and the number of original packets can be represented as E. When a receiver has received a specific number of encoded packets (N′), the original packets (N) can be decoded within a certain probability. N′ can be defined as shown in equation 1:N′=N+E  (1)
Here, the number of additional packets (E) can be determined based upon a variety of signal factors including channel conditions, including range of the channel, electronic interference, topology interference, and the like. The probability that all N packets can be properly decoded once N′ encoded packets have been received can be expressed as 1−d(E). This probability defines the quality of service (QoS) of the broadcast system. The more extra transmitted packets, the higher the probability of accurately decoding the data is. In general, however, it is desirable to design a system such that E is as small as possible, in order to make efficient use of network bandwidth, yet large enough to provide sufficient redundancy for the worst case receiver. Additional redundancy may be required for coding algorithms that require a particular sequence of data packets for decoding.
There are two primary versions of fountain codes: LT codes and raptor codes. In these coding techniques, the packets are encoded using an XOR operation. The resulting probability of decoding the full file is d(E)≦2−E. This probability is not optimal for efficient network performance. In addition, with these systems, the receivers must have a priori knowledge of the encoding algorithm used at the base station, which may require additional communications and further reduce network efficiency and increase network complexity.